package com.lxp.modules.gyy.domain;

import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * Task
 * @TableName project_task
 */
@TableName(value ="project_task")
@Data
public class ProjectTask implements Serializable {
    /**
     * 主键
     */
    @TableId
    private Integer id;

    /**
     * 是否激活
     */
    private Boolean active;

    /**
     * 标题
     */
    private String name;

    /**
     * 说明
     */
    private String description;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    /**
     * 完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dateEnd;
    /**
     * 发布人
     */
    private Integer createUid;

    /**
     * 截止时间
     */
    private Date dateDeadline;

    /**
     * 项目id
     */
    private Integer projectId;

    @TableField(exist = false)
    private String projectName;

    /**
     * 用户ID
     */
    private Integer userId;

    /**
     * 任务难易度
     */
    private String difficultyLevel;

    /**
     * 任务时效得分
     */
    private Double dateDeadlineScore;

    /**
     * 总分
     */
    private Double taskScoreSum;

    /**
     * 任务时长得分
     */
    private Double dateTimeScore;

    /**
     * 工作品质得分
     */
    private Integer difficultyLevelScore;

    /**
     * 任务看板类型taskKanbanConclusionType1对应的中文含义;  finish_on_time按时完成,completed_ahead_of_schedule提前完成,postponed已延期,processing进行中,deferred_completion延期完成  还有一个即将延期,使用else就行
     */
    private String taskKanbanConclusionType1;


    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    public Date getCreateDate() {
        return DateUtil.offset(createDate, DateField.HOUR,8);
    }

    public Date getDateEnd() {
        return DateUtil.offset(dateEnd, DateField.HOUR,8);
    }
}